/* {{ .Name }}--------自动化代码---------------------- 开始*/
// 目录    internal\service\{{ .FileServer }}\{{ .Name }}.go
// 包装对外暴露对象
var {{ .Name }} gu{{ .Name }}
type gu{{ .Name }} struct {}

// Creat--创建记录
func (gu gu{{ .Name }}) Creat(ctx context.Context,req map[string]interface{})(err error){
	_,err1 := dao.{{ .EntityName }}.Ctx(ctx).Data(req).InsertIgnore()
	if err1 != nil {
		return  err1
	}
	return
}
// Update--更新记录
func (gu gu{{ .Name }}) Update(ctx context.Context,req *entity.{{ .EntityName }})(err error){
	res1,err1 := dao.{{ .EntityName }}.Ctx(ctx).Data(req).Where(dao.{{ .EntityName }}.Columns().Id,req.Id).Update()
	if err1 != nil {
		return  err1
	}
	res2,err2 := res1.RowsAffected()
	if err2 != nil {
		return err2
	}
	if res2 == 0 {
		err = gerror.New("影响行数为0")
		return err
	}
	return
}
// React--根据id获取记录
func (gu gu{{ .Name }}) React(ctx context.Context,id int)(res *entity.{{ .EntityName }},err error){
	var One *entity.{{ .EntityName }}
	err = dao.{{ .EntityName }}.Ctx(ctx).Where(dao.{{ .EntityName }}.Columns().Id,id).Scan(&One)
	if err != nil {
		return nil, err
	}
	res = One
	return
}
// Delete--根据id删除单条
func (gu gu{{ .Name }}) Delete(ctx context.Context,id int)(err error){
	res1,err1 := dao.{{ .EntityName }}.Ctx(ctx).WhereIn(dao.{{ .EntityName }}.Columns().Id,id).Delete()
	if err1 != nil {
		return  err1
	}
	res2,err2 := res1.RowsAffected()
	if err2 != nil {
		return err2
	}
	if res2 == 0 {
		err = gerror.New("影响行数为0")
		return err
	}
	return
}
// DeleteByIds--根据id数组批量删除数据
func (gu gu{{ .Name }}) DeleteByIds(ctx context.Context,ids []int)(err error){
	res1,err1 := dao.{{ .EntityName }}.Ctx(ctx).WhereIn(dao.{{ .EntityName }}.Columns().Id,ids).Delete()
	if err1 != nil {
		return  err1
	}
	res2,err2 := res1.RowsAffected()
	if err2 != nil {
		return err2
	}
	if res2 == 0 {
		err = gerror.New("影响行数为0")
		return err
	}
	return
}
// BatchByIdsTo****--根据id数组批量操作数据
//  One功能写这里
func (gu gu{{ .Name }}) BatchByIdsToOne(ctx context.Context,Ids []int,BatchValue interface{})(err error){
	g.Dump(Ids,BatchValue)
	return
}
// Two 功能写这里
func (gu gu{{ .Name }}) BatchByIdsToTwo(ctx context.Context,Ids []int,BatchValue interface{})(err error){
	g.Dump(Ids,BatchValue)
	return
}
// Three 功能写这里
func (gu gu{{ .Name }}) BatchByIdsToThree(ctx context.Context,Ids []int,BatchValue interface{})(err error){
	g.Dump(Ids,BatchValue)
	return
}

// GetList--分页获取记录
func (gu gu{{ .Name }}) GetList(ctx context.Context,page *model.Page)(res []*entity.{{ .EntityName }},total int,err error){
	var many []*entity.{{ .EntityName }}
	start := (page.From-1)*10
	limit := page.Limit
	err = dao.{{ .EntityName }}.Ctx(ctx).Where(page.Title).Limit(start,limit).OrderDesc(dao.{{ .EntityName }}.Columns().Id).Scan(&many)
	if err != nil {
		return nil, 0, err
	}
	total,err = dao.{{ .EntityName }}.Ctx(ctx).CountColumn(dao.{{ .EntityName }}.Columns().Id)
	if err != nil {
    	return nil, 0, err
    }
	res = many
	return
}

/* {{ .Name }}--------自动化代码------------------ 结束*/